// 接雨水

let height = [0,1,0,2,1,0,1,3,2,1,2,1]

(j - i) * Math.min(height[i], height[j] - height[i])

var trap = function(height) {
    let len = height.length
    let l_max = [], r_max = [], maxArea = 0
    for(let i = 0; i < height.length; i++) {
        l_max[i] = height[i]
        r_max[i] = height[i]
    }

    for(let i = 1; i < len; i++) { // 保留左边的最大柱子
      l_max = Math.max(height[i], l_max[i - 1])
    }

    
    for(let i = len - 2; i >= 0; i--) { // 保留右边的最大柱子
        r_max = Math.max(height[i], l_max[i + 1])
      }

    for(let i = 0; i < len; i++) {
      maxArea = Math.min(l_max[i], r_max[i]) - height[i]
    }
    return maxArea
}